#ifndef _OBJECT_H_
#define _OBJECT_H_

#include "Math.h"
#include "Texture.h"

class Shader;
class Model;

class Object
{
public:
	Object();
	void Init ();
	void UpdateWorldMat ();
	void Draw ();
	void CleanUp ();
	//
	void SetPosition(Vector3 & vec);
	void SetRotation(Vector3 & vec);
	void SetScale(Vector3 & vec);
	//
	void SetModel(Model * model);
	void AddTexture(Texture * texture);
	void SetShader(Shader * shader);
	//
	bool IsBlend();
	
public:
	Vector3 m_position;
	Vector3 m_rotation;
	Vector3 m_scale;
	Matrix	m_worldMat;

	Model	* m_model;
	Shader	* m_shader;

	bool	m_bNeedUpdate;

public:
	TextureVector m_textures;
};

typedef std::vector<Object *>	ObjectVector;

#endif